package com.example.springbootdemo.mall.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.math.BigDecimal;
import java.util.Date;

/**
 *@author xuwangqi
 *@date 2021/5/24 9:28
 **/
/**
    * 优惠卷表
    */
@ApiModel(value="com-example-springbootdemo-entity-Coupon")
@TableName(value = "coupon")
public class Coupon {
    @TableId(value = "id", type = IdType.AUTO)
    @ApiModelProperty(value="")
    private Long id;

    /**
     * 优惠卷类型；0->全场赠券；1->会员赠券；2->购物赠券；3->注册赠券
     */
    @TableField(value = "type")
    @ApiModelProperty(value="优惠卷类型；0->全场赠券；1->会员赠券；2->购物赠券；3->注册赠券")
    private Integer type;

    /**
     * 优惠券分类: 0->满减券 ；1折扣券 2 立减券
     */
    @TableField(value = "category")
    @ApiModelProperty(value="优惠券分类: 0->满减券 ；1折扣券 2 立减券")
    private Integer category;

    @TableField(value = "name")
    @ApiModelProperty(value="")
    private String name;

    /**
     * 优惠券logo
     */
    @TableField(value = "logo")
    @ApiModelProperty(value="优惠券logo")
    private String logo;

    /**
     * 优惠券介绍
     */
    @TableField(value = "intro")
    @ApiModelProperty(value="优惠券介绍")
    private String intro;

    /**
     * 数量
     */
    @TableField(value = "count")
    @ApiModelProperty(value="数量")
    private Integer count;

    /**
     * 金额
     */
    @TableField(value = "amount")
    @ApiModelProperty(value="金额")
    private BigDecimal amount;

    /**
     * 每人限领张数
     */
    @TableField(value = "per_limit")
    @ApiModelProperty(value="每人限领张数")
    private Integer perLimit;

    /**
     * 使用门槛；0表示无门槛
     */
    @TableField(value = "min_point")
    @ApiModelProperty(value="使用门槛；0表示无门槛")
    private BigDecimal minPoint;

    /**
     * 优惠卷使用开始时间
     */
    @TableField(value = "gmt_start")
    @ApiModelProperty(value="优惠卷使用开始时间")
    private Date gmtStart;

    /**
     * 优惠券使用结束
     */
    @TableField(value = "gmt_end")
    @ApiModelProperty(value="优惠券使用结束")
    private Date gmtEnd;

    /**
     * 使用类型：0->全场通用；1->指定分类；2->指定商品
     */
    @TableField(value = "use_type")
    @ApiModelProperty(value="使用类型：0->全场通用；1->指定分类；2->指定商品")
    private Integer useType;

    /**
     * 备注
     */
    @TableField(value = "note")
    @ApiModelProperty(value="备注")
    private String note;

    /**
     * 发行数量
为null时，发行数量为无限
     */
    @TableField(value = "publish_count")
    @ApiModelProperty(value="发行数量,为null时，发行数量为无限")
    private Integer publishCount;

    /**
     * 可以领取的日期
     */
    @TableField(value = "gmt_enable")
    @ApiModelProperty(value="可以领取的日期")
    private Date gmtEnable;

    /**
     * 截止领取的日期
     */
    @TableField(value = "gmt_disable")
    @ApiModelProperty(value="截止领取的日期")
    private Date gmtDisable;

    /**
     * 优惠券使用状态 0未使用 2 已使用 4已过期
     */
    @TableField(value = "status")
    @ApiModelProperty(value="优惠券使用状态 0未使用 2 已使用 4已过期")
    private Byte status;

    /**
     * 优惠码
     */
    @TableField(value = "code")
    @ApiModelProperty(value="优惠码")
    private String code;

    /**
     * 可领取的会员类型：0->授权 1->未授权
     */
    @TableField(value = "user_level")
    @ApiModelProperty(value="可领取的会员类型：0->授权 1->未授权")
    private Integer userLevel;

    /**
     * 优惠券使用规则
     */
    @TableField(value = "rule")
    @ApiModelProperty(value="优惠券使用规则")
    private String rule;

    /**
     * 相应活动的url地址
     */
    @TableField(value = "activity_url")
    @ApiModelProperty(value="相应活动的url地址")
    private String activityUrl;

    @TableField(value = "cipher")
    @ApiModelProperty(value="")
    private String cipher;

    /**
     * 删除状态【0->未删除；1->已删除】
     */
    @TableField(value = "is_delete")
    @ApiModelProperty(value="删除状态【0->未删除；1->已删除】")
    private Byte isDelete;

    @TableField(value = "gmt_create")
    @ApiModelProperty(value="")
    private Date gmtCreate;

    @TableField(value = "gmt_modified")
    @ApiModelProperty(value="")
    private Date gmtModified;

    public static final String COL_ID = "id";

    public static final String COL_TYPE = "type";

    public static final String COL_CATEGORY = "category";

    public static final String COL_NAME = "name";

    public static final String COL_LOGO = "logo";

    public static final String COL_INTRO = "intro";

    public static final String COL_COUNT = "count";

    public static final String COL_AMOUNT = "amount";

    public static final String COL_PER_LIMIT = "per_limit";

    public static final String COL_MIN_POINT = "min_point";

    public static final String COL_GMT_START = "gmt_start";

    public static final String COL_GMT_END = "gmt_end";

    public static final String COL_USE_TYPE = "use_type";

    public static final String COL_NOTE = "note";

    public static final String COL_PUBLISH_COUNT = "publish_count";

    public static final String COL_GMT_ENABLE = "gmt_enable";

    public static final String COL_GMT_DISABLE = "gmt_disable";

    public static final String COL_STATUS = "status";

    public static final String COL_CODE = "code";

    public static final String COL_USER_LEVEL = "user_level";

    public static final String COL_RULE = "rule";

    public static final String COL_ACTIVITY_URL = "activity_url";

    public static final String COL_CIPHER = "cipher";

    public static final String COL_IS_DELETE = "is_delete";

    public static final String COL_GMT_CREATE = "gmt_create";

    public static final String COL_GMT_MODIFIED = "gmt_modified";

    /**
     * @return id
     */
    public Long getId() {
        return id;
    }

    /**
     * @param id
     */
    public void setId(Long id) {
        this.id = id;
    }

    /**
     * 获取优惠卷类型；0->全场赠券；1->会员赠券；2->购物赠券；3->注册赠券
     *
     * @return type - 优惠卷类型；0->全场赠券；1->会员赠券；2->购物赠券；3->注册赠券
     */
    public Integer getType() {
        return type;
    }

    /**
     * 设置优惠卷类型；0->全场赠券；1->会员赠券；2->购物赠券；3->注册赠券
     *
     * @param type 优惠卷类型；0->全场赠券；1->会员赠券；2->购物赠券；3->注册赠券
     */
    public void setType(Integer type) {
        this.type = type;
    }

    /**
     * 获取优惠券分类: 0->满减券 ；1折扣券 2 立减券
     *
     * @return category - 优惠券分类: 0->满减券 ；1折扣券 2 立减券
     */
    public Integer getCategory() {
        return category;
    }

    /**
     * 设置优惠券分类: 0->满减券 ；1折扣券 2 立减券
     *
     * @param category 优惠券分类: 0->满减券 ；1折扣券 2 立减券
     */
    public void setCategory(Integer category) {
        this.category = category;
    }

    /**
     * @return name
     */
    public String getName() {
        return name;
    }

    /**
     * @param name
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * 获取优惠券logo
     *
     * @return logo - 优惠券logo
     */
    public String getLogo() {
        return logo;
    }

    /**
     * 设置优惠券logo
     *
     * @param logo 优惠券logo
     */
    public void setLogo(String logo) {
        this.logo = logo;
    }

    /**
     * 获取优惠券介绍
     *
     * @return intro - 优惠券介绍
     */
    public String getIntro() {
        return intro;
    }

    /**
     * 设置优惠券介绍
     *
     * @param intro 优惠券介绍
     */
    public void setIntro(String intro) {
        this.intro = intro;
    }

    /**
     * 获取数量
     *
     * @return count - 数量
     */
    public Integer getCount() {
        return count;
    }

    /**
     * 设置数量
     *
     * @param count 数量
     */
    public void setCount(Integer count) {
        this.count = count;
    }

    /**
     * 获取金额
     *
     * @return amount - 金额
     */
    public BigDecimal getAmount() {
        return amount;
    }

    /**
     * 设置金额
     *
     * @param amount 金额
     */
    public void setAmount(BigDecimal amount) {
        this.amount = amount;
    }

    /**
     * 获取每人限领张数
     *
     * @return per_limit - 每人限领张数
     */
    public Integer getPerLimit() {
        return perLimit;
    }

    /**
     * 设置每人限领张数
     *
     * @param perLimit 每人限领张数
     */
    public void setPerLimit(Integer perLimit) {
        this.perLimit = perLimit;
    }

    /**
     * 获取使用门槛；0表示无门槛
     *
     * @return min_point - 使用门槛；0表示无门槛
     */
    public BigDecimal getMinPoint() {
        return minPoint;
    }

    /**
     * 设置使用门槛；0表示无门槛
     *
     * @param minPoint 使用门槛；0表示无门槛
     */
    public void setMinPoint(BigDecimal minPoint) {
        this.minPoint = minPoint;
    }

    /**
     * 获取优惠卷使用开始时间
     *
     * @return gmt_start - 优惠卷使用开始时间
     */
    public Date getGmtStart() {
        return gmtStart;
    }

    /**
     * 设置优惠卷使用开始时间
     *
     * @param gmtStart 优惠卷使用开始时间
     */
    public void setGmtStart(Date gmtStart) {
        this.gmtStart = gmtStart;
    }

    /**
     * 获取优惠券使用结束
     *
     * @return gmt_end - 优惠券使用结束
     */
    public Date getGmtEnd() {
        return gmtEnd;
    }

    /**
     * 设置优惠券使用结束
     *
     * @param gmtEnd 优惠券使用结束
     */
    public void setGmtEnd(Date gmtEnd) {
        this.gmtEnd = gmtEnd;
    }

    /**
     * 获取使用类型：0->全场通用；1->指定分类；2->指定商品
     *
     * @return use_type - 使用类型：0->全场通用；1->指定分类；2->指定商品
     */
    public Integer getUseType() {
        return useType;
    }

    /**
     * 设置使用类型：0->全场通用；1->指定分类；2->指定商品
     *
     * @param useType 使用类型：0->全场通用；1->指定分类；2->指定商品
     */
    public void setUseType(Integer useType) {
        this.useType = useType;
    }

    /**
     * 获取备注
     *
     * @return note - 备注
     */
    public String getNote() {
        return note;
    }

    /**
     * 设置备注
     *
     * @param note 备注
     */
    public void setNote(String note) {
        this.note = note;
    }

    /**
     * 获取发行数量
为null时，发行数量为无限
     *
     * @return publish_count - 发行数量
为null时，发行数量为无限
     */
    public Integer getPublishCount() {
        return publishCount;
    }

    /**
     * 设置发行数量
为null时，发行数量为无限
     *
     * @param publishCount 发行数量
为null时，发行数量为无限
     */
    public void setPublishCount(Integer publishCount) {
        this.publishCount = publishCount;
    }

    /**
     * 获取可以领取的日期
     *
     * @return gmt_enable - 可以领取的日期
     */
    public Date getGmtEnable() {
        return gmtEnable;
    }

    /**
     * 设置可以领取的日期
     *
     * @param gmtEnable 可以领取的日期
     */
    public void setGmtEnable(Date gmtEnable) {
        this.gmtEnable = gmtEnable;
    }

    /**
     * 获取截止领取的日期
     *
     * @return gmt_disable - 截止领取的日期
     */
    public Date getGmtDisable() {
        return gmtDisable;
    }

    /**
     * 设置截止领取的日期
     *
     * @param gmtDisable 截止领取的日期
     */
    public void setGmtDisable(Date gmtDisable) {
        this.gmtDisable = gmtDisable;
    }

    /**
     * 获取优惠券使用状态 0未使用 2 已使用 4已过期
     *
     * @return status - 优惠券使用状态 0未使用 2 已使用 4已过期
     */
    public Byte getStatus() {
        return status;
    }

    /**
     * 设置优惠券使用状态 0未使用 2 已使用 4已过期
     *
     * @param status 优惠券使用状态 0未使用 2 已使用 4已过期
     */
    public void setStatus(Byte status) {
        this.status = status;
    }

    /**
     * 获取优惠码
     *
     * @return code - 优惠码
     */
    public String getCode() {
        return code;
    }

    /**
     * 设置优惠码
     *
     * @param code 优惠码
     */
    public void setCode(String code) {
        this.code = code;
    }

    /**
     * 获取可领取的会员类型：0->授权 1->未授权
     *
     * @return user_level - 可领取的会员类型：0->授权 1->未授权
     */
    public Integer getUserLevel() {
        return userLevel;
    }

    /**
     * 设置可领取的会员类型：0->授权 1->未授权
     *
     * @param userLevel 可领取的会员类型：0->授权 1->未授权
     */
    public void setUserLevel(Integer userLevel) {
        this.userLevel = userLevel;
    }

    /**
     * 获取优惠券使用规则
     *
     * @return rule - 优惠券使用规则
     */
    public String getRule() {
        return rule;
    }

    /**
     * 设置优惠券使用规则
     *
     * @param rule 优惠券使用规则
     */
    public void setRule(String rule) {
        this.rule = rule;
    }

    /**
     * 获取相应活动的url地址
     *
     * @return activity_url - 相应活动的url地址
     */
    public String getActivityUrl() {
        return activityUrl;
    }

    /**
     * 设置相应活动的url地址
     *
     * @param activityUrl 相应活动的url地址
     */
    public void setActivityUrl(String activityUrl) {
        this.activityUrl = activityUrl;
    }

    /**
     * @return cipher
     */
    public String getCipher() {
        return cipher;
    }

    /**
     * @param cipher
     */
    public void setCipher(String cipher) {
        this.cipher = cipher;
    }

    /**
     * 获取删除状态【0->未删除；1->已删除】
     *
     * @return is_delete - 删除状态【0->未删除；1->已删除】
     */
    public Byte getIsDelete() {
        return isDelete;
    }

    /**
     * 设置删除状态【0->未删除；1->已删除】
     *
     * @param isDelete 删除状态【0->未删除；1->已删除】
     */
    public void setIsDelete(Byte isDelete) {
        this.isDelete = isDelete;
    }

    /**
     * @return gmt_create
     */
    public Date getGmtCreate() {
        return gmtCreate;
    }

    /**
     * @param gmtCreate
     */
    public void setGmtCreate(Date gmtCreate) {
        this.gmtCreate = gmtCreate;
    }

    /**
     * @return gmt_modified
     */
    public Date getGmtModified() {
        return gmtModified;
    }

    /**
     * @param gmtModified
     */
    public void setGmtModified(Date gmtModified) {
        this.gmtModified = gmtModified;
    }
}